
# 利用列表表示二叉树,通过列表
class BinaryTree:
    def __init__(self,r):
        self.root = [r,[],[]]

    def insertLeft(self,newBranch):
        t = self.root.pop(1)
        if len(t) > 1:
            self.root.insert(1,[newBranch,t,[]])
        else:
            self.root.insert(1,[newBranch,[],[]])
        return self.root

    def insertRight(self,newBranch):
        t = self.root.pop(2)
        if len(t) > 1:
            self.root.insert(2,[newBranch,[],t])
        else:
            self.root.insert(2,[newBranch,[],[]])
        return self.root

    def getRootval(self):
        return self.root[0]

    def setRootval(self,newVal):
        self.root[0] = newVal

    def getLeftChild(self):
        return self.root[1]

    def getRightChild(self):
        return self.root[2]

if __name__ == '__main__':
    tree = BinaryTree(30)
    print(tree.insertLeft(25))
    print(tree.insertRight(32))
